﻿using System;
using BusinessLayer.Model.Entities;

namespace BusinessLayer.Model.Services.Abstract
{
    /// <summary>
    /// Interface que define los métodos que debe implementar el servicio de sesiones.
    /// </summary>
    public interface ISessionService
    {
        /// <summary>
        /// Obtiene o define el usuario que se encuentra logeado
        /// </summary>
        Account CurrentLoggedUser { get; set; }

        /// <summary>
        /// True si el usuario está logeado, de lo contrario False.
        /// </summary>
        bool    UserLoggedIn { get; set; }

        /// <summary>
        /// Limpia los datos de la sesion actual
        /// </summary>
        void    ClearUserSession();

        /// <summary>
        /// Determina si la sesion expiró
        /// </summary>
        /// <returns>True si la sesion expiró, de lo contrario false.</returns>
        bool    SessionExpired();
    }
}
